预训练模型(Pre-trained Model)大致可以分为两代,第一代预训练模型的学习目标是与上下文无关的分布式词嵌入(distributed word embedding),是单词级别的静态词向量,以Word2Vec, Glove, Fasttext为代表。然而,由于大多数NLP任务都超出单词理解级别,因此需要在句子级别或更高级别上对神经编码器进行预训练,这就是第二代预训练模型,代表模型为GPT, BERT。第二代预训练模型的编码器的输出向量依赖于单词的上下文,词嵌入表示取决于上下文语义。本文主要讨论第二代预训练模型,对第一代预训练模型只做简单的回顾。本文试图梳理预训练模型在NLP中的发展历程,包括背景知识、预训练模型结构、任务设计。此外,本文对预训练模型的特征编码器transformer做一个基本的介绍,涉及transformer和CNN、RNN等其他特征编码器的对比,如何进行位置编码,如何降低attention的计算复杂度,如何压缩基于transformer的预训练模型等。
01
Introduction
1.1 History Before BERT
2018年9月份,Deep Learning Indaba 2018大会上,ULMFit作者之一Sebastian Ruder做了一个名为Frontiers of Natural Language Processing 的报告,其中梳理了近年来NLP的关键进展。这里引用报告中的时间线,并从预训练模型的视角做简单的remark。 2003 - Neural network language models(神经语言模型)A Neural Probabilistic Language Model ,词嵌入(word embedding)首次出现就是在Bingo的这篇文章中。2008 - Multi-task learning多任务学习采用同一个模型结构并共享参数。目前预训练模型的也是这样做的,即:在多个任务上预训练同一个模型(参数共享),每个任务的优化目标不同,全局优化目标为轮流优化子任务或子任务优化目标之和。2013 - Word embeddings(词嵌入)Distributed representations of words and phrases and their compositionality(Mikolov) .highlight:CBOW&Skip-gram,Negative Sampling静态词向量的其他工作:Glove,Fasttext2013 - Neural networks for NLP典型代表:CNN, RNN, 是很多NLP模型的特征编码器。2014 - Sequence-to-sequence models典型结构:encoder-decoder典型应用:机器翻译2015 - Attention(注意力机制)2015 - Memory-based networks(基于记忆的网络)2017 - Transformer一种基于attention的全新的特征提取器,碾压CNN, RNN的存在。
第一步是将离散的语言文字(token)映射到一个低维空间,获取稠密表达(distributed embedding)。Non-contextual Embeddings的典型代表是word2vec,glove,fasttext。但这样做的缺点有两个:一是文本没有上下文特征,无法解决一词多义;二是Out of Vocabulary问题。针对这两个问题,学界和业界探索出了一系列解决办法,下面具体介绍。
在传统的机器学习中,数据即知识,比如(X,y)都是数值型的变量,省去了编码这一步。在NLP任务中,我们需要从文本中抽取知识(Knowledge),再将知识表示为模型可以学习的形式。Knowledge是我们对NLP领域基础知识的总结,决定了模型的知识面,就像语文、数学、物理等学科一样。NLP领域的常见知识有共现(cooccurrence)、词汇(vocabulary)、句法(syntactic)和语义(Sematic)等。cooccurrence, 指的是哪些单词经常一起出现。Syntactic,也就是句法,指的是语言的结构,简单说就是名词、动词、形容词、介词、副词等在一句话中的位置及约束关系。光有句法还不行,结构正确的句子不一定有意义, semantic, 也就是语义,指的是语言表达的意义要正确。举个例子:The weather is an apple. 从syntactic上来说,这句话没有错,主谓宾齐全,但是sematic上来说是错的,weather 怎么能是apple呢。有了syntactic knowledge,模型可以说一句通顺的话;有了sematic knowledge,就可以说出一句正确的话;有了vocabulary Knowledge,说的话更像人话。从学习知识的形式上讲可以分为:token级别、sentence级别、document级别的知识。从学习目标上讲有单词、句法、语义的知识。
3.4 Concrete Pre-training Tasks
Knowledge是抽象的,看不见摸不着的;Pre-training Tasks是具体的学习的任务,是具象的,可感知的。Pre-training Tasks设计的好不好就像教材编写的好不好一样,会影响模型学习的速度和准确度。 当我们谈PTLM的时候,其实主要在谈预训练任务是怎样设计的。由于需要大规模的训练语料,预训练任务一般是无监的。其代表代表是Masked Language Modeling和Causal Language Modeling,将在第四章具体介绍。预训练任务是抽象知识的具象化表达,而模型是学习这种具象化知识的工具。
本章主要介绍预训练任务和预训练模型。预训练模型包括两大类:一类是自回归语言模型(AutoRegression Language Model), 也称因果语言建模(Causal Language Modeling)。一类是自编码语言模型(AutoEncoder Language Model),也称掩码语言建模(Masked Language Modeling)。Causal Language Modeling(LM)NLP中最常见的无监督任务是概率语言建模(LM),这是一个经典的概率密度估计问题。尽管LM是一个通用概念,但在实践中,LM通常特别指代自回归LM或单向LM。将在AutoRegression Model部分具体介绍。因果语言建模是预测一系列tokens之后的token的任务。在这种情况下,模型只关注左侧上下文(掩码左侧的标记)。这种训练对于生成任务尤其有用。Masked Language Modeling(MLM)掩码语言建模的任务是用[MASK]按序列屏蔽部分tokens,并使用模型预测被mask的token。这允许模型同时处理被mask的token左右上下文。MLM实际上是一个完形填空任务,根据被mask的token的周围的tokens恢复出被mask的token。根据被mask的token的形式可以分为:Single word masking, phrase making,random span masking,entity masking,whole word masking,将在AutoEncoder LM部分具体分析。Contrastive Learning(CTL)CTL背后的想法是“比较学习”。与LM相比,CTL通常具有较低的计算复杂性,因此是PTM的理想替代训练准则。Word2Vec中的negative sampling就是一种Noise-Contrastive Estimation (NCE) 方法。最近提出的基于CTL的预训练任务有:Replaced token detection: ELECTRA的预训练任务之一。BERT是随机选的15%的MASK,有些token预测会比较简单,有些会比较难,那么利用一个MLM任务的Generator先过滤掉一些简单的mask,剩下的都是相对比较难学习的,这是一种非常好的自动选择masked tokens的方法。ELECTRA把生成式的Masked language model(MLM)预训练任务改成了判别式的Replaced token detection(RTD)任务,判断当前token是否被语言模型替换过。生成器的训练目标还是MLM,判别器的目标是二分类问题,两者同时训练,其目标函数为: Next Sentence Prediction:BERT的预训练任务之一。Sentence Order Prediction:ALBERT的预训练任务之一。
ELMO双向使用LSTM作为encoder,GPT单向使用transformer的decoder作为encoder,XLNET双向使用 transformer的decoder作为encoder。Pros and Cons优点:该类模型对文本序列联合概率估计进行建模,使得该模型更适用于一些生成类的NLP任务。因为这些任务在生成内容的时候就是从左到右的,这和自回归的模式天然匹配。缺点:联合概率是按照文本序列从左至右进行计算的,因此无法同时得到包含上下文信息的双向特征表征。即使是Bidirectional LM,也只是拼接双向信息。
ERNIE:论文地址:ERNIE: Enhanced Representation through Knowledge Integration 将BERT中的随机masking改为实体或短语级别(entity or phrase)的masking(引入知识,Knowledge Integration),使得模型能够从中学习到更多句法语义知识,在许多中文任务上取得SOTA。Whole Word Masking: Pros and Cons优点:能够利用上下文信息得到双向特征表示,擅长cloz任务和阅读理解。缺点:BERT的MLM的任务,其引入了独立性假设,即每个 [MASK] 之间是相互独立的,这使得该模型是对语言模型的联合概率的有偏估计。但这个缺点在ERNIE和WWH提出后有所缓解。另外,由于预训练中 [MASK] 的存在,使得模型预训练阶段的数据与微调阶段的不匹配,使其难以直接用于生成任务。